Skip to content

Add accent color customization to display settings#388

Merged
kdroidFilter merged 7 commits intomasterfrom
feat/accent-color-customization
Mar 10, 2026
Merged

Add accent color customization to display settings#388
kdroidFilter merged 7 commits intomasterfrom
feat/accent-color-customization

Conversation

@kdroidFilter
Copy link
Owner

@kdroidFilter kdroidFilter commented Mar 7, 2026

Summary

  • Add selectable accent color presets (Default/Teal/Green/Gold) in Display Settings via colored circles
  • Override Jewel's primary blue across all themed components: buttons, tabs, checkboxes, radio buttons, combo boxes, context menus, dropdowns, list item selection, search toggles, markdown links, and title bar gradient
  • Each accent provides proper light/dark mode variants; Default uses Jewel's built-in blue palette
  • Persist selection via AppSettings and centralize component styling in ThemeUtils.buildComponentStyling()
  • Replace hardcoded Color(0xFF0E639C) references with JewelTheme.globalColors.outlines.focused

Manual test plan

  • Accent selection UI: Open Settings → Display → verify 4 colored circles appear with selection border on the active one
  • Default accent: Select Default → verify everything looks identical to before this change (Jewel blue)
  • Custom accent (e.g. Gold): Select Gold → verify the accent propagates to:
    • Buttons (background color)
    • Tab underlines (Classic and Islands)
    • Checkboxes (selected state fill)
    • Radio buttons (selected state fill)
    • ComboBox / ListComboBox focus border and list item selection (e.g. font picker in Settings → Fonts)
    • Context menu item hover/focus highlight
    • Dropdown menu item hover/focus highlight and focus border
    • Search toggle chips (FilterButton, TelescopeIconButton)
    • Title bar gradient tint
    • Markdown link colors (Settings → About / Conditions, Onboarding → Licence)
  • Light mode: Switch to light theme → verify accent colors render with proper light-mode variants
  • Dark mode: Switch to dark theme → verify accent colors render with proper dark-mode variants
  • Classic vs Islands: Toggle theme style → verify accent applies correctly in both styles
  • Persistence: Select a non-default accent, restart the app → verify the selection is restored
  • Settings window: Verify accent applies inside the settings dialog itself (buttons, combo boxes, etc.)
  • No regressions: Navigate the app normally (open books, search, browse categories) and verify no visual glitches

Add selectable accent color presets (Default, Teal, Green, Gold) that
override Jewel's primary blue across the entire UI: buttons, tabs,
checkboxes, radio buttons, combo boxes, context menus, dropdowns,
list items, search toggles, markdown links, and title bar gradient.

Each accent provides light/dark mode variants. Default uses Jewel's
built-in blue palette directly.
Deduplicate the markdown styling+rendering pattern from
AboutSettingsScreen, ConditionsSettingsScreen, and LicenceScreen
into a single reusable AccentMarkdownView composable.
Deduplicate the markdown styling+rendering pattern from
AboutSettingsScreen, ConditionsSettingsScreen, and LicenceScreen
into a single reusable AccentMarkdownView composable.
Build H2/H3 objects independently before assembling, reducing branching.
Improve the accent color settings screen with better UI layout and add
ProGuard rules for native image compilation. Update theme utilities and
configuration to support enhanced customization options.
- Updated nucleus to version 1.4.2.
- Removed unused JitPack Maven repository from settings.gradle.kts.
@kdroidFilter kdroidFilter marked this pull request as ready for review March 10, 2026 14:41
@kdroidFilter kdroidFilter merged commit 94e16bf into master Mar 10, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant